<?php

/**
 En este servicio se haran transacciones de los modulos de :
 * -MANTENIMIENTO DE CARACTERISTICAS
 * -MANTENIMIENTO DE PAQUETES
 *
 */
class paquetesActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */

  function preExecute(){
      /*
       * MANTENIMIENTO DE CARACTERISTICA
       *    -opcion : Registrar Caracteristica
       
       * cargo los registros de la tabla UNIDAD_MEDIDA
       * coloco la vista en la cual se mostrara los datos para compararlo
       * en el index
      */
      $this->unidadmedida = UnidadMedidaPeer::doSelect(new Criteria());
      $this->listacaracteristicas = PaqueteCaracteristicaPeer::doSelect(new Criteria());
  }


  public function executeIndex(sfWebRequest $request)
  {
  
  }

   public function executeEvaluador(sfWebRequest $request)
  {
        $valor_sub_menu = $this->getUser()->getAttribute('s_sub_menu','null');
        $this->getUser()->setAttribute('s_sub_menu','1');
        $this->redirect('paquetes/index');
  }

  public function executeListarpaquetes(sfWebRequest $request)
  {
     $this->listapaquetes = PaquetePeer::doSelect(new Criteria());
     
  }
public function executePaquete(sfWebRequest $request)
  {
   $nuevo_paquete = $request->getParameter('fla');
   if($nuevo_paquete == "nuevo"){

       $this->getUser()->getAttributeHolder()->remove('paquete');
       
   }
   $temporal_paquete = new Paquete();
   $temporal_paquete = $this->getUser()->getAttribute('paquete',null);
   if($temporal_paquete != null){
   $codigo_paquete = $temporal_paquete->getId();
   $criterio = new Criteria();
   $criterio->add(DetallePaqueteCaracteristicaPeer::PAQUETE_ID,$codigo_paquete);

   $this->lista_paquetes_detalles = DetallePaqueteCaracteristicaPeer::doSelect($criterio);
  
   }


    $this->listaplataformas = PlataformaPeer::doSelect(new Criteria());
    $this->listacaracteristicas = PaqueteCaracteristicaPeer::doSelect(new Criteria());
    
  }
  public function executeEliminarpaquetes(sfWebRequest $request)
  {
   $id = $request->getParameter('id');

   if($id != null){
       $criterio_detalle = new Criteria();
       $criterio_detalle->add(DetallePaqueteCaracteristicaPeer::ID,$id);

       $paquete_detalle_eliminar = DetallePaqueteCaracteristicaPeer::doSelectOne($criterio_detalle);
       $id_paquete = $paquete_detalle_eliminar->getPaqueteId();
       $paquete_detalle_eliminar->delete();

       }
$this->redirect('paquetes/editarpaquetes?id='.$id_paquete);

  }
  public function executeEditarpaquetes(sfWebRequest $request)
  {
   $condicion = $request->getParameter('condicion');
   $id = $request->getParameter('id');
   if($condicion != null){
       if($condicion == "editar"){

   //capturo los valores recibidos
   $titulo = $request->getParameter('titulo');
   $descripcion = $request->getParameter('descripcion');
   $precio = $request->getParameter('precio');
   $estado = $request->getParameter('estado');
   //actualizo los valores
   $criterio = new Criteria();
   $criterio->add(PaquetePeer::ID,$id);
   $paquete_editar = PaquetePeer::doSelectOne($criterio);
   $paquete_editar->setTitulo($titulo);
   $paquete_editar->setDescripcion($descripcion);
   $paquete_editar->setPrecioActual($precio);
   $paquete_editar->setFlags($estado);
   $paquete_editar->save();


   }
   if($condicion == "agregarDetalle"){


  $codigo_paquete = $request->getParameter('id');
  $cantidad = $request->getParameter('txtCantidad');
  $caracteristica = $request->getParameter('caracteristicas');
  $new_detalle_paquete = new DetallePaqueteCaracteristica();
  $new_detalle_paquete->setPaqueteId($codigo_paquete);
  $new_detalle_paquete->setPaqueteCaracteristicaId($caracteristica);
  $new_detalle_paquete->setDescripcion($cantidad);
  $new_detalle_paquete->setCodigoUnidadMedia("unidad");
  $new_detalle_paquete->save();

   }
   }
   
       $criterio = new Criteria();
       $criterio->add(PaquetePeer::ID,$id);

       $paquete_editar = PaquetePeer::doSelectOne($criterio);
       if(is_object($paquete_editar)){
       $this->paqueteEdicion = $paquete_editar;
       }
       
       $criterio = new Criteria();
       $criterio->add(DetallePaqueteCaracteristicaPeer::PAQUETE_ID,$id);

       $this->lista_paquete_detalle = DetallePaqueteCaracteristicaPeer::doSelect($criterio);

       $this->listacaracteristicas = PaqueteCaracteristicaPeer::doSelect(new Criteria());

   
   
      
  }
  public function executeRegistropaquete(sfWebRequest $request)
  { 
   //parametros de Registo de Paquetes
   $titulo_paquete = $request->getParameter('txtTituloPaquete');
   $descripcion_paquete = $request->getParameter('txtDescripcionPaquetes');
   $precio_actual_paquete = $request->getParameter('txtPrecioActual');
   $plataformas = $request->getParameter('plataformas');
   $estado_paquete = $request->getParameter('Estado');

   //parametros de Detalle paquete
   $caracteristica = $request->getParameter('caracteristicas');
   $cantidad = $request->getParameter('txtCantidad');

   $valor_condicion = $request->getParameter('condicion');
 

   if($valor_condicion == "RP"){

   $new_paquete = new Paquete();

   $new_paquete->setTitulo($titulo_paquete);
   $new_paquete->setDescripcion($descripcion_paquete);
   $new_paquete->setPrecioActual($precio_actual_paquete);
   $new_paquete->setPlataformaId($plataformas);
   $new_paquete->setFlags($estado_paquete);
   $new_paquete->save();
   
   $this->getUser()->setAttribute('paquete',$new_paquete);
  
   }else{
  $temporal_paquete = new Paquete();

  $temporal_paquete = $this->getUser()->getAttribute('paquete',null);

  if($temporal_paquete != null){

  
  $new_detalle_paquete = new DetallePaqueteCaracteristica();
  $codigo_paquete = $temporal_paquete->getId();
  $new_detalle_paquete->setPaqueteId($codigo_paquete);
  $new_detalle_paquete->setPaqueteCaracteristicaId($caracteristica);
  $new_detalle_paquete->setDescripcion($cantidad);
  $new_detalle_paquete->setCodigoUnidadMedia("unidad");
  $new_detalle_paquete->save();

  
  
  $this->redirect('paquetes/paquete');

  

  }else{
      
  }
   }
$this->redirect('paquetes/paquete');

  }
   public function executeRegistroCaracteristica(sfWebRequest $request)
  {

$estado = "Habilitado";
$descripcion_caracteristica = $request->getParameter('txtDescripcion');
$unidad_medida = $request->getParameter('unidad_medida');



$vString= new sfValidatorString(array('required'=>true));

 try {
  $vString->clean(strtolower(trim($descripcion_caracteristica)));
}catch(sfValidatorError $exc){
 return sfView::ERROR;
}


 
$objeto_caracteristica = new PaqueteCaracteristica();

$objeto_caracteristica->setDescripcion($descripcion_caracteristica);
$objeto_caracteristica->setUnidad($unidad_medida);
$objeto_caracteristica->setFlags($estado);
$objeto_caracteristica->save();
 $this->redirect('paquetes/index');

  }

public function executeUnidadMedida(sfWebRequest $request)
{
 
  $unidad_medidas_objetos = UnidadMedidaPeer::doSelect(new Criteria());
  $this-> unidad_objetos = $unidad_medidas_objetos;


}
public function executeRegistroUnidad(sfWebRequest $request)
{

 $descripcion_unidad = $request->getParameter('txtDecripcionUnidad');
$vString= new sfValidatorString(array('required'=>true));
 try {
  $vString->clean(strtolower(trim($descripcion_unidad)));
}catch(sfValidatorError $exc){
 return sfView::ERROR;
}
$objeto_unidad = new UnidadMedida();
$objeto_unidad->setMedidaCaracteristica($descripcion_unidad);
$objeto_unidad->save();

 $this->redirect('paquetes/index');
}

}
